﻿<?php
//echo (getcwd());
require('../gogeocode-0.2/src/GoogleGeocode.php');
require('../gogeoplaces-0.2/GooglePlaces.php');

class middleware {
	private $_endereco;
	private $_tipoLogradouro;
	private $_raio;
	private $_latitude;
	private $_longitude;
	private $_lugares;
	private $_apiKey;
	
	public function setEndereco ($_end){
		$this->_endereco = $_end;
	}	
	
	public function getEndereco() {
		return $this->_endereco;
	}
	
	public function setTipoLogradouro ($_tipo) {
		$this->_tipoLogradouro = $_tipo;
	}
	
	public function getTipoLogradouro () {
		return $this->_tipoLogradouro;
	}
	
	public function setRaio ($_raio) {
		$this->_raio = $_raio;
	}
	
	public function getRaio () {
		return $this->_raio;
	}
	
	public function setApiKey ( $_apiKey ) {
		$this->_apiKey = $_apiKey;		
	}
	
	public function getApiKey() {
		return $this->_apiKey;
	}
		
	public function getLatitude() {
		$geo = new GoogleGeocode( $this->getApiKey());
		$result = $geo->geocode( utf8_encode ( $this->getEndereco() ) );
		$latitude = $result["Placemarks"][0]["Latitude"];
		return $latitude;
	}
	
	public function getLongitude() {
		$geo = new GoogleGeocode( $this->getApiKey());
		$result = $geo->geocode( utf8_encode ( $this->getEndereco() ) );
		$longitude = $result["Placemarks"][0]["Longitude"];
		return $longitude;
	}
	
	public function getCoordenadas() {
		return $this->getLatitude() . "," . $this->getLongitude() ;
	}
	

	public function getLocais() {
		$gplaces = New GooglePlaces;
		$gplaces->SetLocation($this->getCoordenadas());
		$gplaces->SetRadius($this->getRaio());
		$gplaces->SetTypes($this->getTipoLogradouro());	
		$gplaces->SetAPIKey($this->getApiKey());
		$consulta = $gplaces->Search();
		foreach ($consulta["results"] as $primeira) {
			$resultado .= "<b>" . $primeira["name"]. "</b><br>" . $primeira["vicinity"] . "<br><br>";
		}
		if (!count($consulta["results"])) {
			$resultado = "Não há logradouros para os parâmetros pesquisados"; 
		}			
		return $resultado;
	}
}

?>